#ifndef GRADUATE_STUDENT_H
#define GRADUATE_STUDENT_H

#include "Student.h"
#include <memory>
#include <string>

class GraduateStudent : public Student {
private:
    std::string researchTopic;
    std::shared_ptr<std::string> advisor;

public:
    GraduateStudent(const std::string& name, int age, const std::string& id, 
                   const std::string& major, double gpa, 
                   const std::string& researchTopic, const std::string& advisor);
    void display() const override;
    double calculateFee() const override;
    bool operator==(const GraduateStudent& other) const;
};

#endif


